package com.ylbh.modules.banner.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylbh.common.pojo.activity.dto.GoodsListDTO;
import com.ylbh.common.pojo.banner.dto.BannerListDTO;
import com.ylbh.common.pojo.banner.dto.GoodsCommendAddDTO;
import com.ylbh.common.pojo.banner.dto.GoodsCommendDTO;
import com.ylbh.common.pojo.banner.dto.StartAdvertisingDTO;
import com.ylbh.common.pojo.goods.dto.GoodsClassDTO;
import com.ylbh.common.utils.PageDTO;
import com.ylbh.common.utils.PageUtils;
import com.ylbh.modules.banner.entity.AppHomeBanner;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 *
 * appBanner管理
 * @author czx
 * @date 2019-05-08 18:04:15
 */
public interface AppHomeBannerService extends IService<AppHomeBanner> {

    /**
     * banner列表
     * @param bannerListDTO
     * @return
     */
    PageUtils queryBannerList(BannerListDTO bannerListDTO);

    /**
     * banner详情
     * @param id
     * @return
     */
    AppHomeBanner getBannerById(Long id);

    /**
     * 修改banner
     * @param appHomeBanner
     */
    void modifyBannerById(AppHomeBanner appHomeBanner);

    /**
     * 新增banner
     * @param appHomeBanner
     */
    void addBanner(AppHomeBanner appHomeBanner);

    /**
     * 删除banner
     * @param list
     */
    void removeBannerByIds(List<String> list);

    /**
     * 上传banner图片
     * @param file
     * @return
     */
    String uploadBanner(MultipartFile file);

    /**
     * 通过id获取楼层信息
     * @param id
     * @return
     */
    AppHomeBanner getFloorById(Integer id);

    /**
     * 修改Banner图片显示状态
     * @param id
     * @param showStatus
     */
    void modifyShowStatus(Long id, Integer showStatus);

    /**
     * 专题管理列表
     * @param bannerListDTO
     * @return
     */
    PageUtils querySpecialList(BannerListDTO bannerListDTO);

    PageUtils queryBannerLists(BannerListDTO bannerListDTO);

    /**
     * 根据分辨率条件来上传图片
     * @param file
     * @param type
     * @return
     */
    String uploadAdvertisingMap(MultipartFile file, String type);

    /**
     * 新增启动广告
     * @param startAdvertisingDTO
     */
    void addStartAdvertising(StartAdvertisingDTO startAdvertisingDTO);

    /**
     * 修改启动广告
     * @param startAdvertisingDTO
     */
    void modifyStartAdvertisingById(StartAdvertisingDTO startAdvertisingDTO);

    /**
     * 启动广告详情
     * @param id
     */
    StartAdvertisingDTO getStartAdvertisingById(Long id);

    /**
     * 启动广告页列表
     * @param pageDTO
     * @return
     */
    PageUtils queryStartAdvertisingList(PageDTO pageDTO);

    /**
     * 商品推荐详情
     * @param id
     */
    AppHomeBanner getGoodsRecommendInfoById(Integer id);

    /**
     * 修改商品推荐详情
     * @param goodsCommendDTO
     */
    void modifyGoodsRecommendDetailsById(GoodsCommendDTO goodsCommendDTO);

    /**
     * 新增商品推荐
     * @param appHomeBanner
     */
    void addGoodsCommend(AppHomeBanner appHomeBanner);

    /**
     * 商品推荐添加商品查询
     * @param goodsListDTO
     * @return
     */
    PageUtils queryNotAddedGoods(GoodsCommendAddDTO goodsListDTO);

    /**
     *
     * 首页底部菜单icon
     * @param pageDTO
     * @return
     */
    PageUtils queryBottomIconList(PageDTO pageDTO);

    /**
     * 首页底部菜单icon图标上传
     * @param file
     * @param request
     * @return
     */
    String uploadBottomIcon(MultipartFile file, HttpServletRequest request);

    /**
     * vip升级商品列表
     * @param dto
     * @return
     */
    PageUtils vipUpgradeGoodsList(BannerListDTO dto);

    List<GoodsClassDTO> queryOuterClassList();
}

